1. Technical Field
Embodiments of the invention generally relate to electronics, and, in particular, to error correction circuits and/or asynchronous circuits.
2. Description of the Related Technology
Error correction codes (ECC) are widely used to detect and/or correct errors in data read from a memory, such as a non-volatile memory (NVM). Parity is a common ECC protection scheme. Data digits, such as bits having binary values, and their corresponding parity digits can be referred to as a codeword.
A Hamming code is one example of an error correction code. Hamming codes use parity digits that correspond to overlapping parity regions of data digits of a codeword, such that a position of a single error in the codeword can be uniquely identified. In addition, some Hamming codes can include an overall parity digit. In one non-limiting example, with an overall parity digit in a particular Hamming code, one error in a codeword can be corrected and two errors in the codeword can be detected. As such, this type of Hamming code can provide single error correction, double error detection (SECDED) data protection.
Error correction circuits can be susceptible to process, voltage, and temperature (PVT) variations. Alternatively or additionally, error correction circuits can require a relatively large amount of circuitry to implement, which can increase die area and costs. Further, some error correction circuits require external controls and/or clocks that consume significant power and/or add complexity to the design. Accordingly, a need exists for improved error correction circuits.
To avoid repetition of description, components having the same or similar function may be referenced by the same reference number.